# 绘制2020年1月到4月所有匹配的云底高度和云顶高度的折线图按小时划分
import pandas as pd
import matplotlib.pyplot as plt
import os

# 设置图片清晰度
plt.rcParams['figure.dpi'] = 300

# 假设数据文件路径，根据实际情况修改
data_path = '/mnt/datastore/liudddata/cloudsat_data/cloudsat_matched_hourly_3.csv'
df = pd.read_csv(data_path)

# 将 cloudsat_time 转换为日期时间类型
df['cloudsat_time'] = pd.to_datetime(df['cloudsat_time'])

# 按小时分组
grouped = df.groupby(df['cloudsat_time'].dt.floor('H'))

# 确保保存图片的目录存在
save_dir = '/mnt/datastore/liudddata/cloudsat_data/oceanmask'
if not os.path.exists(save_dir):
    os.makedirs(save_dir)

for hour, group in grouped:
    # 创建一个新的图形
    plt.figure(figsize=(10, 6))

    # 绘制风云数据（红色）
    plt.plot(group['fy_lat'], group['fy_cth'], 'r-', label='FY CTH')
    plt.plot(group['fy_lat'], group['fy_cbh'], 'r--', label='FY CBH')

    # 绘制 CloudSat 数据（蓝色）
    plt.plot(group['cloudsat_lat'], group['cloudsat_cth'], 'b-', label='CloudSat CTH')
    plt.plot(group['cloudsat_lat'], group['cloudsat_cbh'], 'b--', label='CloudSat CBH')

    # 设置标题和坐标轴标签
    plt.title(f'Variation of cloud parameters with latitude（{hour.strftime("%Y-%m-%d %H:%M:%S")}）')
    plt.xlabel('CloudSat lat')
    plt.ylabel('CTH')

    # 显示图例
    plt.legend()

    # 显示网格
    plt.grid(True)

    # 生成图片文件名
    filename = os.path.join(save_dir, f'{hour.strftime("%Y-%m-%d_%H-%M-%S")}.png')
    # 保存图片
    plt.savefig(filename)
    # 关闭当前图形
    plt.close()